package com.cskaoyan.demo7.mapper;

import com.cskaoyan.demo7.model.CskaoyanUser;

/**
 * 多表查询：
 *   1. 分多次查询 selectByUsername2
 *   2. 连接查询 一次性将所有的信息都查询出来，然后呢在resultMap中建立字段和成员变量之间的对应关系 selectByUsername3
 *
 * 一对一
 *   association标签
 *      property属性：(父标签类型的)成员变量名 → set方法
 *      分次查询：
 *          column属性：第一次查询 结果集中的列名，作为第二次查询的参数
 *          select属性：第二次查询 命名空间.id
 *      连接查询：
 *          javaType属性：property属性对应的成员变量的类型的全限定类名
 *          result子标签：property属性 column属性
 */
public interface CskaoyanUserMapper {
    /**
     * 根据用户名查询User和UserDetail的信息
     * select * from cskaoyan_user where username = ?   → CskaoyanUserMapper
     * select * from cskaoyan_user_detail where user_id = ? → CskaoyanUserDetailMapper
     */
    //先查询、再手动组装
    CskaoyanUser selectByUsername(String username);
    // 使用MyBatis的分次查询来做
    CskaoyanUser selectByUsername2(String username);
    // 使用MyBatis的连接查询来做
    CskaoyanUser selectByUsername3(String username);

}
